package com.zxl.designpattern.behavioral.interpreter;

import java.util.HashMap;
import java.util.Map;

/**
 * 上下文类(环境角色)
 * 用于存储变量的值
 */
public class Context {

    private Map<String, Integer> variables;  // 变量映射表
    
    /**
     * 构造函数，初始化变量映射表
     */
    public Context() {
        variables = new HashMap<>();
    }
    
    /**
     * 为变量赋值
     * @param variable 变量名
     * @param value 变量值
     */
    public void assign(String variable, int value) {
        variables.put(variable, value);
    }
    
    /**
     * 获取变量的值
     * @param variable 变量名
     * @return 变量值
     */
    public int getValue(String variable) {
        return variables.getOrDefault(variable, 0);
    }
}    